package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.db.conn;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class admin_Pass extends HttpServlet {

    /**
     * 构造函数.
     */
    public admin_Pass() {
        super();
    }

    /**
     * 销毁方法，当servlet被从服务中移除时使用
     */
    public void destroy() {
        super.destroy(); // 仅将destroy字符串放入日志
        // Put your code here
    }

    /**
     * 处理http post请求
     * 用于处理管理员密码修改请求
     *
     * @param request  客户端发送到服务器的请求
     * @param response 服务器发送给客户端的相应
     * @throws ServletException 如果发生错误
     * @throws IOException      如果发生错误
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
       //设置响应内容类型为html
        response.setContentType("text/html");
       //获取用于输出响应的PrintWriter对象
        PrintWriter out = response.getWriter();

//        创建数据库连接对象
        conn cn = new conn();
//        获取当前会话
        HttpSession session = request.getSession();
//        从会话中获取管理员ID
        String aid = (String) session.getAttribute("adminId");
//         检查管理员是否已登录
        if (aid == null) {
//            未登录，显示提示信息并跳转到登录页面
            out.println("<script>");
            out.println("alert('对不起，请先登录！');");
            out.println("window.top.location='login.jsp'");
            out.println("</script>");
        } else {
//            获取表单提交的原密码和新密码
            String pwd1 = request.getParameter("txt_pwd");//原密码
            String pwd2 = request.getParameter("txt_pwd2");//新密码

//            构建SQL查询语句，验证原密码是否正确
            String sql = "select * from admin where aid=" + aid + " and pwd='" + pwd1 + "' ";
//            执行查询
            ResultSet rs = cn.query(sql);

            try {
                if (rs.next()) {
//                    原密码正确，执行密码更新操作
                    sql = "update admin set pwd='" + pwd2 + "' where aid=" + aid;
                    cn.update(sql);
//                    密码修改成功，显示提示信息并返回密码修改页面
                    out.println("<script>");
                    out.println("alert('恭喜您：修改成功！');");
                    out.println("window.location='admin/admin/pass.jsp'");
                    out.println("</script>");
                } else {
//                    原密码错误，显示提示信息并返回密码修改页面
                    out.println("<script>");
                    out.println("alert('对不起，原密码错误，请重新输入！');");
                    out.println("window.location='admin/admin/pass.jsp'");
                    out.println("</script>");
                }

            } catch (SQLException e) {
                // 处理SQL异常
                e.printStackTrace();
            }

//            刷新输出流并关闭
            out.flush();
            out.close();
        }


    }

    /**
     * 初始化方法
     *在servlet被创建时调用
     * @throws ServletException 如果发生错误
     */
    public void init() throws ServletException {
        // Put your code here
    }

}


